/// @tags: Greedy
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <iostream>
#define rint register int

using std::cin;
using std::cout;
using std::min;

namespace BlueQuantum {

typedef unsigned long long ULL;

constexpr int maxn = 1e5 + 3;
constexpr ULL INF = 0xffffffffffffffff;

int A, B, n, m;
ULL C;
ULL t[maxn], b[maxn];
ULL bbuk[maxn], tbuk[maxn];

inline int main() {
  cin >> A >> B >> C >> n >> m;
  ULL sum = 0, cnt = 0, sumb = 0, bcnt = 0, sumt = 0, tcnt = 0;
  for (rint i = 1; i <= n; ++i) {
    cin >> t[i], tbuk[t[i]]++, sumt += t[i], tcnt++;
  }
  for (rint i = 1; i <= m; ++i) {
    cin >> b[i], bbuk[b[i]]++, sumb += b[i], bcnt++;
  }
  ULL ans = INF;
  for (rint i = 100000; i >= 1; --i) {
    sum += i * bbuk[i], cnt += bbuk[i];
    sumb -= i * bbuk[i], bcnt -= bbuk[i];
    sumt -= i * tbuk[i], tcnt -= tbuk[i];
    if (!sum) continue;
    ULL cost = 0, need = sum - cnt * i;
    if (A < B) {
      ULL avil = bcnt * i - sumb;
      cost += min(need, avil) * A;
      need -= min(need, avil);
      cost += need * B;
    } else {
      cost += need * B;
    }
    cost += (tcnt * i - sumt) * C;
    ans = min(ans, cost);
  }
  cout << ans;
  return 0;
}

}  // namespace BlueQuantum

int main() {
#ifndef ONLINE_JUDGE
#ifdef LOCAL
  freopen("/tmp/CodeTmp/testdata.in", "r", stdin);
  freopen("/tmp/CodeTmp/testdata.out", "w", stdout);
#else
  freopen("P3745 [六省联考2017] 期末考试.in", "r", stdin);
  freopen("P3745 [六省联考2017] 期末考试.out", "w", stdout);
#endif
#endif

  std::ios::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  return BlueQuantum::main();
}
